'''
CSV
Comma-Separate Values
逗号分隔值
文档内容是由 ',' 号分隔的一列列的数据构成的。
CSV是文本格式，但是它能和 EXCEL 互转
编辑方便、可视化效果好、轻量级数据存储
'''
import csv
'''Python3.X 有：r  w  a  r+等操作'''
'''Python2.X rb wb r w a r'''
data = [['IG.wxz', '29'],['Pony', '35'], ['Robin Lee', '36'],['Jack Ma', 40],['黄渤', 37]]

with open('example.csv','a+', newline='', encoding='utf-8') as f_csv:
    #newline='' 是对空行的处理  这个的话  会两行内容间隔空行  # encoding='utf-8'注意编码格式操作
    #.writer() 作用是创建CSV的写容器 相当于一个副本
    writer = csv.writer(f_csv)
    #.writerrow()写入数据 并且写入数据后自动换行，行数+1
    writer.writerow(['name','age'])
    #迭代写入数据
    '''按行写入'''
    for row in data:
        writer.writerow(row)
    '''多行写入'''
    # writer.writerows(data)
'''CSV 读操作  read'''
# import os
# file_name = os.path.join(os.getcwd(),'example.csv')
# if os.path.exists(file_name):
#     with open(file_name, 'r', encoding='utf-8') as f_csv:#注意编码格式操作
#         reader = csv.reader(f_csv)
#         # next(reader) 跳过第一行
#         for row in reader:
#             # .line_num 表示记录的行 读完之后自动+1
#             print(reader.line_num, row)
#             print(row[0], row[1])#直接读出行内的内容不以列标打印 也不加行号
'''字典的数据 存储'''
dict_data = [
    {'name':'张三','age':'18'},
    {'name':'张三1','age':'181'},
    {'name':'张三2','age':'182'},
    {'name':'张三3','age':'183'}
]
with open('example01.csv', 'w', newline='', encoding='utf-8') as f_csv:
    f_name = ['name', 'age']
    writer = csv.DictWriter(f_csv, fieldnames=f_name)
    # writer.writerows(dict_data)
    writer.writeheader()
    for row in dict_data:
        writer.writerow(row)#单行写入 row：字典
# with open('example01.csv', 'r', encoding='utf-8') as f_csv:
#     reader = csv.DictReader(f_csv)
#     # next(reader)
#     for row in reader:
#         print(row)
#         print(reader.line_num, row['name'], row['age'])
